class MySingleTon {
	//懒汉模式
	/**
	 * 在创建类的时候，这个singleTon已经创建好了
	 */
	private static volatile Object sinleTon=null;
	/**
	 * 第一个if是判断是否需要进行加锁 ，第二个if判断是否要创建新的对象
	 * 但是这样依旧不能保证线程安全的问题
	 * 因为还有原子性的操作
	 * @return
	 */
	public static Object getSinleTon() {
		if(sinleTon==null) {
			synchronized (MySingleTon.class) {
				if (sinleTon == null) {
					sinleTon = new Object();
				}
			}
		}
		return sinleTon;
	}
	//直接给一个私有构造方法
	private MySingleTon() {

	}
}
public class Demo15 {
	public static void main(String[] args) {

	}
}
